// reduce 收敛函数 可以把一个数组转成其它格式 



// 执行过程 求和函数 
// reduce方法使用的前提 数组不能为空 ，如果只有一个值则返回当前值 

let r= ([1,2,3,4,5,6]).reduce(function (pre,cur,index,array) {
    console.log(pre,cur,index)
    return pre+cur
})
console.log(r)


Array.prototype.reduce= function (callback,prev) {
    for(let i =0 ; i<this.length ;i++){
        if(!prev){
           prev= callback(this[i],this[i+1],i+1,this)
            i++
        }else{
            prev = callback(prev,this[i],i,this)
        }
    }
    return prev;
}